package com.data.model.catalog;

import lombok.Data;

import java.util.List;

@Data
public class TableCatalogDTO extends BaseCatalogDTO {

    private StructureDTO structure;

    /**
     * 度量
     */
    private List<MeasureReferenceDTO> measureReferences;

    /**
     * 维度
     */
    private List<DimensionReferenceDTO> dimensionReferences;

    /**
     * 数据源
     */
    private DataReferenceDTO dataReference;

    /**
     *
     */
    @Data
    public static class StructureDTO {
        /**
         * 定义
         */
        private String definition;
    }

    /**
     * 数据源
     */
    @Data
    public static class DataReferenceDTO {
        /**
         * 类型
         */
        private String type;

        /**
         * 表code
         */
        private String code;
    }

    /**
     * 度量
     */
    @Data
    public static class MeasureReferenceDTO {
        /**
         * 度量
         */
        private String columnName;

        /**
         * 描述
         */
        private String description;
    }

    /**
     * 维度
     */
    @Data
    public static class DimensionReferenceDTO {
        /**
         * 维度code
         */
        private String code;

        /**
         * 维度标志符
         */
        private List<String> dimensionIds;

        /**
         * 维度修饰词语
         */
        private List<String> dimensionModifiers;
    }
}
